package cn.song.docflow.model.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 图片参数数据传输对象
 *
 * @author SongRenShuo
 * @date 2023/05/20
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ImageParamDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 图片路径
     */
    private String path;

    /**
     * 图片宽度（像素）
     */
    private Integer width;

    /**
     * 图片高度（像素）
     */
    private Integer height;

    /**
     * 创建默认尺寸的图片参数
     *
     * @param path 图片路径
     * @return 图片参数
     */
    public static ImageParamDTO of(String path) {
        return ImageParamDTO.builder()
                .path(path)
                .width(100)
                .height(100)
                .build();
    }

    /**
     * 创建指定尺寸的图片参数
     *
     * @param path 图片路径
     * @param width 宽度
     * @param height 高度
     * @return 图片参数
     */
    public static ImageParamDTO of(String path, Integer width, Integer height) {
        return ImageParamDTO.builder()
                .path(path)
                .width(width)
                .height(height)
                .build();
    }
}
